package com.softer.chengxin.role.service;

import com.softer.chengxin.common.domin.CommonResult;
import com.softer.chengxin.common.domin.ManagerPageResult;
import com.softer.chengxin.common.domin.Page;
import com.softer.chengxin.common.domin.RoleModules;
import com.softer.chengxin.role.entity.Role;

import java.util.List;

/**
 * @author Gong Zhiyang
 * @date 2018/10/13
 */
public interface RoleService {

    /**
     * 删除角色
     *
     * @param id 角色ID
     * @return 处理结果
     */
    CommonResult delete(int id);

    /**
     * 新增角色
     *
     * @param role 角色信息
     * @return 处理结果
     */
    CommonResult add(Role role);

    /**
     * 编辑角色
     *
     * @param role 角色信息
     * @return 处理结果
     */
    CommonResult update(Role role);

    /**
     * 获取角色信息
     *
     * @param id 角色ID
     * @return 角色信息
     */
    Role getRoleInfo(Integer id);

    /**
     * 查询权限列表
     *
     * @return 权限集合
     */
    List<RoleModules> loadModules();

    /**
     * 获取当前登陆用户创建的角色列表
     *
     * @param loginName 登陆名
     * @return 角色列表
     */
    List<Role> getRoleList(String loginName);

    /**
     * 页面初始化时，加载角色列表
     *
     * @param page 页面信息
     * @param loginName 登陆名
     * @return 角色列表
     */
    ManagerPageResult load(Page page, String loginName);
}
